import json
import pandas as pd
import plotly.express as px

# 探索数据的结构

filename = r'D:\ui\scatter_diagram\data\eq_data_30_day_m1.json'
with open(filename) as f:
    all_eq_data = json.load(f)

readable_file = 'D:/ui/scatter_diagram/data/readable_eq_data.json'
with open(readable_file,'w') as f:
    json.dump(all_eq_data,f,indent=4)

all_eq_dicts = all_eq_data['features']

mags,sigs,titles,lons,lats = [],[],[],[],[]
for eq_dict in all_eq_dicts:
    mag = eq_dict['properties']['mag']
    sig = eq_dict['properties']['sig']
    title = eq_dict['properties']['title']
    lon = eq_dict['geometry']['coordinates'][0] #经度
    lat = eq_dict['geometry']['coordinates'][1]
    mags.append(mag)
    sigs.append(sig)
    titles.append(title)
    lons.append(lon)
    lats.append(lat)


data = pd.DataFrame(
    data=zip(lons,lats,titles,mags,sigs),columns=['经度','纬度','位置','震级','数字']
)
data.head()


fig = px.scatter(
    data,
    x='经度',
    y='纬度',
    # range_x=[-200,200],
    # range_y=[-90,90],
    width=1200,
    height=800,
    title='全球地震散点图',
    size='震级',
    size_max=20,  # size_max为图表中圆点的大小
    color='震级',
    opacity=0.5,
    text='数字',
    hover_name='位置'
)

# fig.write_html('global_earthquakes.html')  # 保存散点图到当前目录下
fig.show()

